// 全局配置对象
var config = {};
// 面包屑
config.bread = {
    // 属性配置集合
    attr: {
        className: '',
        style: {}
    },
    // 元素集合
    items: [
        {
            tag: 'a',
            text: '后台管理'
        },
        {
            tag: 'a',
            text: '商品管理'
        }
        ,
        {
            tag: 'a',
            text: '商品增加'
        }
    ]
};
// 搜索表单
config.search = {
    // 属性配置集合
    attr: {
        // 超过行数折叠
        foldRows: 3,
        // 折叠状态
        foldStatus: true,
        className: '',
        style: {}
    },
    form: {
        // 必填。属性集合
        attr: {
            // 选填。自定义样式名称
            className: '',
            // 选填。自定义行内样式
            style: {},
            // 选填。表单元素布局列数，支持 1 2 3 4 5 6，默认4列。此处自带响应式缩放列
            columns: 4,
            // 选填。序号
            id: 'searchForm',
            // 必填。表单名称（分页表格组件设置pagetable.attr.formName与此值一致）
            name: 'searchForm',
            // 必填。表单提交路径
            action: '/product/doAddProduct',
            // 选填。表单提交方式，支持 POST / GET，默认GET
            method: 'post',
            // 选填。页面加载完成后提交表单，一般用于页面展示后显示第一页数据，默认false
            load: false,
            // 选填。是否在提交数据中不增加params参数，true为不增加，false或不设置为增加
            withoutParams: false
        },
        // 选填。表单提交前处理函数，一般用于增加自定义数据校验。返回true才会进行表单提交，不返回或返回false不提交表单
        onSubmit: function (date) {
            console.log(date);
            if(!/^[0-9]*$/.test(date.productPrice)){
               lv.alert("商品价格只能输入数字")
                return false;
            }
            if(!/^[0-9]*$/.test(date.productStock)){
                lv.alert("商品库存只能输入数字")
                return false;
            }
            return true;
        },
        // 选填。表单提交完成后回调函数，一般用于数据处理，设置分页等。注意该函数处理完数据后需将处理数据返回
        onSuccess: function (result) {
            console.log(result);
            lv.alert(result.msg)
            if(result.code == 1 ){
                window.opener.updateDate();
            }
            return result;
        },
        // 选填。请求失败处理函数
        onError: function (err) {
            console.error(err);
            lv.alert("系统出错，请稍后再试");
        },
        // 选填。自定义处理框架校验错误消息，如果没配置，则使用框架默认alert弹出错误消息
        onValidate: function(errMsg) {
            alert(errMsg);
        },
        // 选填。（常用与详情页）
        // 注意此处与attr.action区别：action是提交数据到服务器，这里一般用于读取数据渲染到表单
        // 此处配置项与常用ajax请求配置一样，比如jquery
        ajax: {
            // 必填。数据获取地址
            url: '',
            // 选填。请求方法 GET / POST，默认GET
            method: 'POST',
            // 选填。请求发送参数
            data: {},
            // 选填。是否支持缓存，默认false
            cache: false,
            // 选填。是否页面渲染完成后即可加载，false不加载， true或不配置均会加载
            load: false,
            // 选填。是否在提交数据中不增加params参数，true为不增加，false或不设置为增加
            withoutParams: false,
            // 选填。成功回调函数，这里可以做一下数据处理工作。如有设置，请必须返回处理后的值
            success: function(data) {
                return data;
            },
            // 选填。失败回调函数，这里可以做一下失败提示
            error: function(err) {
                // dosomething
            }
        },
        // 表单元素
        items: [
            {

                tag: 'input',
                label: '商品名称',
                attr: {
                    id: '',
                    name: 'productName'
                }
            },
            {
                tag: 'input',
                label: '商品价格',
                attr: {
                    id: '',
                    name: 'productPrice'
                }
            }
            ,
            {
                tag: 'input',
                label: '商品库存',
                attr: {
                    id: '',
                    name: 'productStock'
                }
            }
            ,
            {
                tag: 'input',
                label: '商品描述',
                attr: {
                    id: '',
                    name: 'productDescription'
                }
            }
            ,
            {
                tag: 'select',
                label: '类目编号',
                // 选填。一般用于label文字超长，需要自动换行使用
                labelBreak: true,
                attr: {
                    className: '',
                    style: {},
                    name: 'categoryType',
                    // 选填。适用于ajax读取数据与默认配置不一致。默认 text
                    fieldText: 'categoryName',
                    // 选填。适用于ajax读取数据与默认配置不一致。默认 value
                    fieldValue: 'categoryType'
                },
                options: [
                    {
                        text: '全部',
                        value: '',
                        selected: true
                    }
                ],
                // 选填。异步获取下拉框选项数据
                ajax: {
                    // 必填。数据获取地址url
                    url: '/category/findCategoryAll',
                    // 选填。请求方法，默认GET
                    method: 'GET',
                    // 选填。请求携带参数
                    data: {},
                    // 选填。成功回调函数，一般用户数据预处理，请返回选项最终渲染数组类型数据
                    success: function(result) {
                        return result;
                    },
                    // 选填。失败回调函数
                    error: function(err) {
                        console.log(err);
                    }
                },
                // change事件自定义处理函数，请返回true标识当前选中操作合法，返回false或者不返回则不选中当前选择
                // target: 当前点击元素
                // rowData：用于ajax异步返回数据，为当前选中对象完整数据
                // tableName: 所属动态表格attr.name
                // tableRowIndex: 所属动态表格行号
                onChange: function (target, rowData, tableName, tableRowIndex) {
                    // target是当前操作的对象
                    // 通过target.value可以直接拿到所选值
                    console.log(target.value);
                    // 如果配置了onChange事件处理函数，必须返回true才能设置值
                    return true;
                }
            }
        ],
        // 表单按钮组
        btngroup: {
            attr: {
                // 自定义样式，框架提供对齐方式样式名 center / left / right，默认：left
                className: 'center',
                style: {}
            },
            items: [
                {
                    tag: 'button',
                    text: '提交',
                    attr: {
                        // 配置为submit是标识当前按钮可以提交表单
                        // type: 'submit'
                    },
                    onClick: function (e) {
                        ajax(config.search.form.data)
                    }
                },
                {
                    tag: 'button',
                    text: '关闭',
                    attr: {
                        // 配置为submit是标识当前按钮可以提交表单

                    },
                    onClick: function (e) {
                        window.close();
                    }
                }
            ]
        }
    }
};

function ajax(data) {
    var date = config.search.form.data;
    lv.formSubmit('searchForm', {
        // json数据对象。额外需要随表单元素一起提交数据
        // 比如指定页码等
        productName:date.productName,
        productPrice: date.productPrice,
        categoryType: date.categoryType,
        productStatus: date.productStatus,
        productStock: date.productStock
    });

}

// 启动框架
window.lv.start({
    // 选填。配置项填充div的id值，默认 lv-view
    viewId: 'lv-view',
    // 必填。配置项对象
    config: config
});





